//package com.yunhe.spo.filter;
//
//import com.netflix.zuul.ZuulFilter;
//import com.netflix.zuul.context.RequestContext;
//import org.springframework.common.netflix.zuul.filters.support.FilterConstants;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.Map;
//import java.util.concurrent.ConcurrentHashMap;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
///**
// * URL转发过滤器
// * @author liuronglei
// */
//public class UrlRedirectFilter extends ZuulFilter {
//    private static Map<String, String> urlMap = new ConcurrentHashMap<>();
//    static {
////        urlMap.put("^/api/[1-9]\\d*/firms", "/11/firms");
////        urlMap.put("^/api/[1-9]\\d*/users", "/11/users");
//    }
//
//    @Override
//    public String filterType() {
//        return FilterConstants.ROUTE_TYPE;
//    }
//
//    @Override
//    public int filterOrder() {
//        return 0;
//    }
//
//    @Override
//    public boolean shouldFilter() {
//        return true;
//    }
//
//    @Override
//    public Object run() {
//        RequestContext ctx = RequestContext.getCurrentContext();
//        HttpServletRequest request = ctx.getRequest();
//        String uri = request.getRequestURI();
//        for (Map.Entry<String, String> entry : urlMap.entrySet()) {
//            String pattern = entry.getKey();
//            Pattern r = Pattern.compile(pattern);
//            Matcher m = r.matcher(uri);
//            if (m.find()) {
//                String newUri = uri.replaceFirst(m.group(), entry.getValue());
//                ctx.put(FilterConstants.REQUEST_URI_KEY, newUri);
//                System.out.println(uri + " -> " + newUri);
//                System.out.println(request.getContextPath());
//                return null;
//            }
//        }
//        return null;
//    }
//}